<template>
  <div>
    <div class="footer_wrap">
      <!-- <a href="#/find">发现音乐</a>
      <a href="#/my">我的音乐</a>
      <a href="#/part">朋友</a> -->

      <!-- 声明式导航好处:  
 1.替代了 a 标签，不需要手动写 # ,会自动决定是否加 #
 2.当前被点击的 a 标签会自动添加类名:router-link-active
本质:最终还是会被渲染成 a 标签
  -->
      <span @click="$router.push('/find')">发现音乐</span>
      <span @click="goto('/my', 'My')">我的音乐</span>
      <span @click="gotoPartQuery('/part', 'Part')">朋友-query传参</span>
      <span @click="gotoPartParams('/part', 'Part')">朋友-params传参</span>
    </div>
    <div class="top">
      <!-- Camel-case  -->
      <!-- <RouterView></RouterView> -->
      <!-- Kebab-Case -->
      <!-- 使用 router-view 全局组件设置挂载点  -->
      <!-- 说人话就是占位符,将来组件切换时替换到此处 -->
      <!-- 组件缓存:使用 keep-alive 组件包裹 router-view 组件即可 -->
      <!-- 匹配缓存:include: 包含; exclude: 不包含，写组件的 name 属性即可 -->
      <!-- 需要提前给组件设置name 属性 -->
      <!-- 如果只写include 表示只包含指定的组件 -->
      <!-- 如果只写 exclude 表示只排除指定的组件 -->
      <!-- 如果要匹配多个组件，可以用逗号分隔 -->
      <!-- <keep-alive exclude="My,Part"></keep-alive> -->

      <keep-alive include="Find,Part" exclude="My">
        <router-view></router-view>
      </keep-alive>
    </div>
  </div>
</template>

<script>
export default {
  methods: {
    goto (path, name) {
      this.$router
        .push({
          path
        })
        .catch(e => e)
    },
    gotoPartQuery (path, name) {
      this.$router
        .push({
          path,
          query: {
            name: '张三',
            age: 18
          }
        })
        .catch(e => e)
    },
    gotoPartParams (path, name) {
      //推荐组合:name+params
      //path + query
      this.$router
        .push({
          name,
          // query:{
          //   name:'张三',
          //   age:18
          // },
          params: {
            name: '李四',
            age: 25
          }
        })
        .catch(e => e)
    }
  }
}
</script>

<style>
.router-link-active {
  color: white;
  background-color: blue !important;
}
.footer_wrap {
  position: fixed;
  left: 0;
  top: 0;
  display: flex;
  width: 100%;
  text-align: center;
  background-color: #333;
  color: #ccc;
}
.footer_wrap a,
span {
  flex: 1;
  text-decoration: none;
  padding: 20px 0;
  line-height: 20px;
  background-color: #333;
  color: #ccc;
  border: 1px solid black;
}
.footer_wrap a:hover,
span:hover {
  background-color: #555;
}
.top {
  padding-top: 62px;
}
</style>
